package net.qiqbframework.modelling.command.voucher;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class AnnotatedLoadVoucherModel<C> implements LoadVoucherModel<C> {
    List<BizIdentifierVoucherModel<?, C>> voucherModels = new ArrayList<>();

    private VersionVoucherModel<C> versionVoucherModel;
    @Override
    public void addVoucherModel(BizIdentifierVoucherModel<?, C> voucherModel) {
        this.voucherModels.add(voucherModel);
    }

    @Override
    public List<BizIdentifierVoucherModel<?, C>> bizIdentifierVoucherModels() {
        return List.copyOf(voucherModels);
    }

    @Override
    public Optional<VersionVoucherModel<C>> versionVoucherModel() {
        return Optional.ofNullable(versionVoucherModel);
    }
}
